跳到主要内容

Kafka 安装

Apache Kafka是分布式发布-订阅消息系统,Apache Kafka与传统消息系统相比,有以下不同:

它被设计为一个分布式系统,易于向外扩展;

它同时为发布和订阅提供高吞吐量;

它支持多订阅者,当失败时能自动平衡消费者;

它将消息持久化到磁盘,因此可用于批量消费;

本篇文章是基于Ubuntu18.04来安装Kafka。

一、安装Java

更新软件包

sudo apt-get update

安装openjdk-8-jdk

sudo apt-get install openjdk-8-jdk

查看java版本,看看是否安装成功

wzj@wzj-ThinkPad-T61:~$ java -version

java version "1.8.0_171"

Java(TM) SE Runtime Environment (build 1.8.0_171-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

二、安装Zookeeper

请看我这篇文章:ZooKeeper的安装与部署

三、安装Kafka

下载地址:https://kafka.apache.org/downloads,ubuntu下可以用wget直接下载,我是下载到了/home/wzj/kafka目录

wget http://mirrors.shuosc.org/apache/kafka/1.0.0/kafka\_2.11-1.0.0.tgz

解压

tar -zxvf kafka_2.11-1.0.0.tgz

创建日志存储目录

wzj@wzj-ThinkPad-T61:~$ cd kafka/

wzj@wzj-ThinkPad-T61:~/kafka$ mkdir logs-1

进入kafka解压目录,修改kafka-server 的配置文件

vim config/server.properties

修改配置文件中21、31、36和60行

broker.id=1

listeners=PLAINTEXT://:9092

advertised.listeners=PLAINTEXT://host_ip:9092

log.dirs=/home/wzj/kafka/logs-1

四、功能验证

1、启动Zookeeper,Zookeeper部署的是单点的。

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

查看是否启动成功

2、启动Kafka服务,使用 kafka-server-start.sh 启动 kafka 服务

bin/kafka-server-start.sh config/server.properties

3、创建topic

使用 kafka-topics.sh 创建单分区单副本的 topic test

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

查看 topic 列表

bin/kafka-topics.sh --list --zookeeper localhost:2181

4、产生消息,创建消息生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

5、消费消息,创建消息消费者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

在生产消息的窗口,输入内容,在消费窗口就可以打印出来

6、查看Topic消息

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

wzj@wzj-ThinkPad-T61:~/kafka/kafka_2.11-1.0.0$ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

Topic:test PartitionCount:1 ReplicationFactor:1 Configs:

Topic: test Partition: 0 Leader: 1 Replicas: 1 Isr: 1

第一行给出了所有分区的摘要,每个附加行给出了关于一个分区的信息。 由于我们只有一个分区,所以只有一行。

“Leader”: 是负责给定分区的所有读取和写入的节点。 每个节点将成为分区随机选择部分的领导者。

“Replicas”: 是复制此分区日志的节点列表,无论它们是否是领导者,或者即使他们当前处于活动状态。

“Isr”: 是一组“同步”副本。这是复制品列表的子集,当前活着并被引导到领导者。

————————————————

版权声明:本文为CSDN博主「dmfrm」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/u010889616/article/details/80641922